perm filename TSTMAT.SAI[VIS,HPM] blob
sn#281319 filedate 1977-05-08 generic text, type C, neo UTF8
COMMENT ⊗ VALID 00002 PAGES
C REC PAGE DESCRIPTION
C00001 00001
C00002 00002 GP[1:5]: The initial approximations for the parameters to
C00006 ENDMK
C⊗;
COMMENT GP[1:5]: The initial approximations for the parameters to
be adjusted. These are, in order, azimuth from camera 1 to
camera 2 (clockwise from above), elevation from camera 1 to
camera 2 (up), pan of camera 2 (clockwise from above), tilt of
camera 2 (up), and roll of camera 2 (clockwise as seen looking
out from the camera), all relative to the orientation of camera 1.;
BEGIN "TSTMAT"
REQUIRE "MAT3D.REL[VIS,HPM]" LOAD_MODULE;
REAL ARRAY PTR,RTP[1:3,1:3], V,C[1:3];
STRING S,SV,SPTR; INTEGER N,FOO,I,J; REAL P,T,R,SP,CP,ST,CT,SR,CR,DET;
EXTERNAL PROCEDURE M33X33(REFERENCE REAL MA,MB,MR);
EXTERNAL PROCEDURE M13X33(REFERENCE REAL MA,MB,MR);
EXTERNAL PROCEDURE T33(REFERENCE REAL MA,MR);
SV←"1 2 4";
SPTR←"0 0 0";
WHILE TRUE DO
BEGIN
OUTSTR("VECTOR: "); LODED(SV&'15&'12); SV←S←INCHWL;
V[1]←REALSCAN(S,FOO);
V[2]←REALSCAN(S,FOO);
V[3]←REALSCAN(S,FOO);
OUTSTR("PAN, TILT, ROLL: "); LODED(SPTR&'15&'12); SPTR←S←INCHWL;
P←REALSCAN(S,FOO); T←REALSCAN(S,FOO); R←REALSCAN(S,FOO);
SP←SIN(P); CP←COS(P);
ST←SIN(T); CT←COS(T);
SR←SIN(R); CR←COS(R);
PTR[1,1]←SP*SR*ST + CP*CR; PTR[1,2]←CT*SR; PTR[1,3]← CR*SP - CP*SR*ST;
PTR[2,1]←CR*SP*ST - CP*SR; PTR[2,2]←CR*CT; PTR[2,3]← -CP*CR*ST - SP*SR;
PTR[3,1]← -CT*SP ; PTR[3,2]← ST ; PTR[3,3]← CP*CT ;
T33(PTR[1,1],PTR[1,1]);
SETFORMAT(7,3);
OUTSTR('15&'12);
DET←PTR[1,1]*(PTR[2,2]*PTR[3,3]-PTR[2,3]*PTR[3,2])
-PTR[2,1]*(PTR[1,2]*PTR[3,3]-PTR[1,3]*PTR[3,2])
+PTR[3,1]*(PTR[1,2]*PTR[2,3]-PTR[1,3]*PTR[2,2]);
FOR I←1,2,3 DO
BEGIN
OUTSTR("|");
FOR J←1,2,3 DO OUTSTR(CVF(PTR[I,J]));
OUTSTR("|");
IF I=2 THEN OUTSTR(" = "&CVF(DET));
OUTSTR('15&'12);
END;
M13X33(V[1],PTR[1,1],C[1]);
OUTSTR('15&'12);
OUTSTR("[");
FOR J←1,2,3 DO OUTSTR(CVF(C[J]));
OUTSTR("]"&'15&'12&'12);
T33(PTR[1,1],PTR[1,1]);
FOR I←1,2,3 DO
BEGIN
OUTSTR("|");
FOR J←1,2,3 DO OUTSTR(CVF(PTR[I,J]));
OUTSTR("|"&'15&'12);
END;
M13X33(C[1],PTR[1,1],C[1]);
OUTSTR('15&'12);
OUTSTR("[");
FOR J←1,2,3 DO OUTSTR(CVF(C[J]));
OUTSTR("]"&'15&'12&'12);
T33(PTR[1,1],RTP[1,1]); M33X33(PTR[1,1],RTP[1,1],PTR[1,1]);
FOR I←1,2,3 DO
BEGIN
OUTSTR("|");
FOR J←1,2,3 DO OUTSTR(CVF(PTR[I,J]));
OUTSTR("|"&'15&'12);
END;
END;
END "TSTMAT";